The present invention relates to an architecture, a system and a method for scheduling resources over a network. More specifically, this invention relates to an architecture, system and method for dynamic resource scheduling between devices operating within an IEEE 1394 serial bus network.
The IEEE standard, xe2x80x9cIEEE Std 1394-1995 Standard For A High Performance Serial Bus,xe2x80x9d is an international standard for implementing an inexpensive high-speed serial bus architecture which supports both asynchronous and isochronous format data transfers. Isochronous data transfers are real-time transfers which take place such that the time intervals between significant instances have the same duration at both the transmitting and receiving applications. Each packet of data transferred isochronously is transferred in its own time period. An example of an ideal application for the transfer of data isochronously would be from a video recorder to a television set. The video recorder records images and sounds and saves the data in discrete chunks or packets. The video recorder then transfers each packet, representing the image and sound recorded over a limited time period, during that time period, for display by the television set. The IEEE 1394 serial bus architecture provides multiple channels for isochronous data transfer between applications. A six bit channel number is broadcast with the data to ensure reception by the appropriate application. This allows multiple applications to simultaneously transmit isochronous data across the bus structure. Asynchronous transfers are traditional data transfer operations which take place as soon as possible and transfer an amount of data from a source to a destination.
The IEEE 1394-1995 standard provides a high-speed serial bus for interconnecting digital devices thereby providing a universal I/O connection. The IEEE 1394-1995 standard defines a digital interface for the applications thereby eliminating the need for an application to convert digital data to analog data before it is transmitted across the bus. Correspondingly, a receiving application will receive digital data from the to bus, not analog data, and will therefore not be required to convert analog data to digital data. The cable required by the IEEE 1394-1995 standard is very thin in size compared to other bulkier cables used to connect such devices. Devices can be added and removed from an IEEE 1394-1995 bus while the bus is active. If a device is so added or removed the bus will then automatically reconfigure itself for transmitting data between the then existing nodes. A node is considered a logical entity with a unique address on the bus structure. Each node provides an identification ROM, a standardized set of control registers and its own address space. Because of the these advantages the IEEE 1394-1995 standard provides for a unique networking structure that is capable of incorporating audio/video devices, media play/record devices and computing/display devices.
A diverse range of products can be implemented with the ability to connect to an IEEE 1394-1995 serial bus network. These devices can have capabilities and functionality ranging from very simple to very complex. Specifically a variety of audio/video devices, media play/record devices and computing/display devices are capable of being linked together over an IEEE 1394 serial bus networking structure to support asynchronous and isochronous data transfers between the devices.
The IEEE 1394-1995 serial bus allows a collection of devices to work together in a high bandwidth, distributed environment to maximize the overall efficiency and functionality of the network. This allows manufacturers to remove expensive pieces of functionality from one device and locate that functionality in another device on the network, instead of duplicating this functionality in all devices on the network. While some of the devices have limited functionality and are relatively inexpensive, such devices require the support and interaction of other devices in order to bring the full functionality of the devices within the network to the user.
The AV/C Digital Interface Command Set is a command set used for data transactions between consumer audio/video equipment over an IEEE 1394-1995 serial bus. Neither the IEEE 1394-1995 serial bus nor the AV/C command set provide a master-slave relationship between the devices coupled within the IEEE 1394-1995 serial bus network. Instead, both the IEEE 1394-1995 serial bus and the AV/C command set operate based on a cooperative peer-to-peer coexistence of devices within the network. Discrete AV/C command and response data packets are transferred between networked devices over an IEEE 1394-1995 serial bus in an asynchronous data stream. The AV/C command and response data packets are typically formatted according to the AV/C protocol outlined in the AV/C Digital Interface Command Set. Transfers of AV/C command and response data packets over the IEEE 1394-1995 serial bus network are supported by an AV/C architecture. The AV/C architecture is comprised of lists and tables that help devices create, process and/or transmit AV/C command and response data packets. The AV/C architecture includes an AV/C bulletin board subunit that is typically dedicated to a resource device subunit such as a tuner, receiver or recoding unit.
An AV/C bulletin board subunit is an information structure that is shared between devices networked over an IEEE 1394-1995 serial bus network. A resource schedule bulletin board is also an information structure that supports information shared between coupled devices within a network. The resource schedule bulletin board provides the organizational structure through which shared data is organized and communicated. The resource schedule bulletin board contains sub-boards of list with entry descriptors that represent encoded data that can be shared between devices within the network via descriptor commands. A dedicated AV/C bulletin board subunit typically supports the information architecture between that device and all compatible posting devices within an IEEE serial bus network. A posting device writes a request entry to a write enabled list within the resource schedule bulletin board specifying when it will use the resource.
Neither the IEEE 1394-1995 serial bus nor the AV/C Command Set provide a master-slave relationship between the devices coupled within the IEEE 1394-1995 serial bus network. Instead, both the IEEE 1394-1995 serial bus and the AV/C Command Set operate based on the cooperative peer-to-peer coexistence of devices within the network transmitting data formatted in accordance with the AV/C protocol. The communicating devices submit command a response data directly with each other without the intervention of a systems resource manager. Each device or device subunit is responsible for managing scheduling affairs and storing resource requests.
Within the current standard AV/C protocol, there are no methods for resolving scheduling conflicts, identifying the progress of schedule entry or for providing for a history of scheduled resource entries. Typically the AV/C protocol operates on a request of use basis, wherein resource time of an available resource device is made available to any requesting device. Within this protocol a device competing for use of a resource device can acquire the right to use the resource device by reserving the resource device, even though another client device may have previously submitted an entry to the resource schedule board requesting the resource device at the same time. There is currently no method for managing the resource schedule bulletin board, resolving schedule conflicts or for providing negotiation of resource time between competing control devices. Further, currently the resource schedule maintained by the resource schedule bulletin board does not always reflect system needs of devices within the network.
The invention is an AV/C architecture that provides scheduling functionalities useful for scheduling resource subunits over a network from a plurality of posting or client devices. Preferably, the AV/C architecture supports scheduling of devices that are coupled together over an IEEE 1394-1995 serial bus network. Resource requests are submitted to an AV/C resource schedule bulletin board that posts and stores the submitted requests as schedule entries. Resource requests and schedule entries contain similar request and scheduling information. Resource requests and schedule entries are distinguished, herein, to describe the physical location of the scheduling information within the network. A resource request is request and schedule information that is supplied at a posting or the control device, whereas a schedule entry is request and schedule information that is posted and stored to an AV/C resource schedule bulletin board on a target device. A resource request and its corresponding schedule entry both contain scheduling data which specify a start time, a duration time, an interval time and a repeat count for each request. Further, requests and corresponding schedule entries contain resource subunit identification data that uniquely identifies the resource subunit within the schedule entries.
In accordance with AV/C architecture of the current invention, the AV/C bulletin board provides a status data field for each of the posted schedule entries. Within the status data field, status values are posted to code for the status of the requests within the system. Preferably, unique status values are provided to indicate when a schedule entry is waiting to start, actively being used, completed normally, completed abnormally and when a schedule entry has been overridden by a competing posting device. The status data field is preferably updated by the scheduled posting device when the status of the request has changed, but can also be updated by the resource device.
The AV/C architecture of the current invention also provides for a progress data field in each posted schedule entry. The progress data field is used to post progress values that indicate the progress of the request towards completion. The progress data field is preferably also updated by the scheduled posting device which monitors the progress of its own request and updates the progress data field at the AV/C bulletin within a predetermined time interval. The time interval is set to have any appropriate value that is practical or suitable for the application at hand.
In the preferred embodiment of the invention, the status data field and the progress data field are correlated such that in the event that the posting device fails to update the progress data field within the predetermined time interval, the status data field is updated by the resource device or the system to indicate that the posting device is not responding properly or is off line.
In alternative embodiments of the invention, the AV/C architecture provides for a subunit data field that posts values to, represent the activity of a networked resource subunit. Preferably, unique values are posted within the subunit data field when the resource subunit is ready to be used, actively being used, is running overtime and has been relinquished by a competing schedule entry. The subunit status values are preferably compiled in a table that also posts identification data values for the requesting posting device and the resource subunit.
The updated status fields and progress fields for each schedule entry are stored to provide an execution history for each request submitted and posted to the AV/C resource schedule bulletin board. In the preferred embodiment of the invention, resource requests are submitted with a keep history data field value that informs the system whether or not to save the status and progress values when the status of the request is altered or the request is completed.
In other embodiments of the invention, status values and progress values are communicated between devices and provide a mechanism to negotiate schedule conflicts. In a particular example, the status values and the progress values of resource requests are continually monitored and updated. If a competing control device submits a resource schedule entry to the resource schedule bulletin board that is in conflict with a posted schedule entry, the system sends a message to the control device that specifies whether or not the resource is in use. If the resource is in use, the system preferably sends a message that notifies the competing device of the status and/or progress of the conflicting request and the competing device is given the opportunity to override the conflicting request depending on the status and/or progress of the conflicting request, the system needs or on a hierarchical assignment of the devices within the network.
The architecture, system and method of the current invention preferably provide functionality to a network of devices coupled over an IEEE-1394-1995 serial bus and allow for the AV/C resource bulletin board to reflect the dynamic environment of the network. The invention also provides for enhanced peer-to-peer schedule management between posting devices without requiring a resource manager. While the invention is particularly useful for scheduling audio/video devices over an IEEE-1394-1995 serial bus network, it is also useful for scheduling other network compatible devices, including computers.